1. Technical Field
The present inventive concept is directed to a denoising apparatus and method, and more particularly to an apparatus and method for reducing noise in an image.
2. Description of the Related Art
A denoising technology reduces noise added to an image. One denoising technology is the averaging method, which reduces noise by averaging over pixel data. In the averaging method, when a certain pixel in the image is contaminated, the pixel is restored primarily by using only pixel data in the vicinity of the contaminated pixel. However, if the neighboring pixels are also contaminated by noise the averaging method cannot remove the contamination simply by averaging over the neighboring pixel data.
A non-local means (hereafter, “NL Means”) has recently been proposed and used to reduce image noise. In this method, pixel noise is estimated on the assumption that the image repeats similar patterns, and the entire image is searched to find a neighborhood having features similar to those of the neighborhood of the denoising target pixels.
For example, to reduce the noise of a denoising target pixel block 10 in the image shown in FIG. 1, a first comparison target block 12 is more similar to the denoising target pixel block 10 than a second comparison target block 14. Accordingly, when obtaining the sum to calculate the average in the NL Means, the higher weight can be assigned to the first comparison target block 12 than to the second comparison target block 14.
The NL Means uses a weight-based average in which the sum for the average is obtained by assigning a weight based on the similarity between the neighboring regions, wherein the neighboring regions are not restricted to being adjacent to the noise-reducing target pixel block. Accordingly, the noise can be reduced even if the neighboring pixels are contaminated by noise. Another denoising method using a weight-based average is the block matching 3D (BM3D) algorithm.
In denoising algorithms using weight-based averaging, the weight is determined based on the similarity between pixel blocks. The similarity may be a difference between the pixels values included in the pixel blocks. For example, the similarity may be a sum of absolute differences (SAD) which is the sum of the differences between the pixel values included in the pixel blocks. The more similar are the pixel blocks, the smaller is the SAD. Since a higher weight may be assigned to a similar pixel block, the weight may become smaller as the difference value between the pixel blocks becomes larger. The weight may decrease linearly or exponentially as the difference value between the pixel blocks becomes larger.
However, if the weight for the pixel difference value changes exponentially, floating point operations may be necessary for weight-based averaging. Since the floating point operations are relatively slow due to greater computational complexity as compared to integer operations, a greater burden may be imposed on an image signal processor (ISP) when processing floating point operations.